<IMG SRC="../utils/wclogo.gif" ALT="Walnut Creek CDROM">
<TITLE>CUG Library volumes 400-462</TITLE>
<H1>Index of /vol_400/</H1>
<H2>CUG Library volumes 400-462</H2>
</CENTER>
<HR size = 2>
<DL>
<DT><A HREF=400_01/00_index.unx>400_01/</A>
<DD>Socket++
<DT><A HREF=400_02/00_index.unx>400_02/</A>
<DD>Socket++, by Gnanasekaran Swaminathan (Centreville, VA), is an iostream-like class for Unix and inet sockets, pipes, and socketpairs. Socket++ classes can be used more effectively than directly calling the underlying low-level system functions. Since Socket++ has the same interface as the LibG++ iostream (i.e. like cout and cin), it automatically performs type-safe input and output. Even though Socket++ is very easy to use, it still supports a full complement of socket options including: error reporting, debug mode, keepalives, routing, broadcast datagrams, out-of-band data, and buffer resizing. Socket++ includes a mechanism for handling timeouts gracefully as well. Socket++ runs on many Unix platforms including Sun Sparc, IBM RS/6000, DECstation, and SGI Indigo boxes. Socket++ version 1.4, released on Jun-93
<DT><A HREF=401_01/00_index.unx>401_01/</A>
<DD>SGPC or "Simple Genetic Programming in C", by Walter Alden Tackett and Aviram Carmi, supports the "Adaptive Automatic Program Induction" method defined by Koza and Rice (Stanford University). The Koza and Rice method generates LISP programs designed to solve problems specified by the user. Tackett and Carmi have produced SGPC by porting the underlying algorithm for program creation from LISP to C. Thus, SGPC is a C program that generates LISP genetic programs as its output. Since SGPC is now available in C, it offers greater portability and a 25 to 50 times speed improvement, according to Tackett and Carmi. One notable improvement over the original is the ability to handle multiple populations. SGPC has been successfully built on many Unix workstations including Sun Sparcs, DECstations, HP-UX, and SGI Indigo. SGPC version 1.0 is now available as volume #401 in the CUG Library.
<DT><A HREF=401_02/00_index.unx>401_02/</A>
<DD>SGPC: Simple Genetic Programming in C 2/2
<DT><A HREF=402_01/00_index.unx>402_01/</A>
<DD>CForms, by Lars Berntzon (Stockholm, Sweden), is a tool for building interactive forms-driven applications. CForms applications can run on nany type of library supported by the "curses" library. CForms uses a language-based design to define forms. An application may contain C source modules, field pictures, field definitions, literals, and events. CForms applications must be compiled with the CFC compiler and linked with the CFL linker. CForms runs on most Unix SYSV compatible platforms including SunOS, Dell-SVR4, and Diab SYSV.3. It requires a curses library and yacc or GNU Bison. CForms version 2.1 is now available as volume #402 in the CUG Library.
<DT><A HREF=403_01/00_index.unx>403_01/</A>
<DD>Patrick KO Shu Pui (Tai Po, Hong Kong) contributes the Small Matrix Toolbox for C Programmers. The toolbox is a set of C functions for matrix creation, arithmetic, inversion, and solving linear equations. This product has been released as shareware. Although you may freely use it for academic purposes, commercial users must register with the author for $25. The Small Matrix Toolbox for C version 0.41 (released 09/23/93)
<DT><A HREF=404_01/00_index.unx>404_01/</A>
<DD>Alain Coëtmeur of the Informatique-CDC (Arcueil, France) presents two new packages that bring traditional Unix tools into the 90's: Bison++ and Flex++. Coetmeur's Bison++ is derived directly from GNU Bison, the popular replacement for the Unix utility called YACC ("Yet Another Compiler Compiler"). Since its introduction two decades ago, the YACC software interface remains the most popular for developing compilers, assemblers, and other text processing applications. Any language that can be handled by a LALR(1) parser is a good candidate for YACC use. 1/3
<DT><A HREF=404_02/00_index.unx>404_02/</A>
<DD>Bison++: YACC for C++ 2/3
<DT><A HREF=404_03/00_index.unx>404_03/</A>
<DD>Bison++: YACC for C++ 3/3
<DT><A HREF=405_01/00_index.unx>405_01/</A>
<DD>Coëtmeur's other contribution to the CUG Library is the Flex++ package. Like Bison++, Flex++ retains downward compatability with existing C programs while offering the benefits of C++ classes. Coetmeur's Flex++ is derived directly from GNU Flex ("Fast LEX"), the popular replacement for the Unix utility called LEX. Since its introduction two decades ago, the LEX software interface remains very popular for developing front-end lexical analyzers for YACC and standalone text processing applications. A LEX solution is ideal for matching both simple and complex patterns of characters. 1/3
<DT><A HREF=405_02/00_index.unx>405_02/</A>
<DD>Flex++: Lexical Analyser for C++ 2/3
<DT><A HREF=405_03/00_index.unx>405_03/</A>
<DD>Flex++: Lexical Analyser for C++ 3/3
<DT><A HREF=406_01/00_index.unx>406_01/</A>
<DD>Mike Rejsa (Brooklyn Park, MN) submits his translator for converting ANSI-style C code and declarations to older Kernighan and Ritchie (K&R) syntax. Most C programmers have switched over to ANSI style coding techniques sometime in the last two or three years. The ANSI syntax allows for for more comfortably readable code and brings you closer to what you really wanted to write. For example, declaring parameters in the prototype and use of const, signed, and volatile storage class modifiers. However, in the course of maintaining older Unix systems, you may sooner or later have to handle the inelegant business of removing ANSI C specific constructs accurately from a newer source. ATOC version 1.08 (released 11/15/93) has been designated CUG 406A.
<DT><A HREF=407_01/00_index.unx>407_01/</A>
<DD>PSUtils, by Angus Duggan (Edinburgh, Scotland), is an assortment of utilities for manipulating PostScript documents. Page selection and rearrangement are supported, including arrangement into signatures for booklet printing, and page merging for n-up printing. The complete collection of PSUtils Release 1-PL11 (June 1993) is now available as CUG library volume #407.
<DT><A HREF=408_01/00_index.unx>408_01/</A>
<DD>Daniel Fandrich (Clearbrook, B.C., Canada) offers his SNews threaded Usenet newsreader add-on for PCs running a shareware package that provides dial-up e-mail access to public networks such as the UUCP network and/or the Internet. SNews can built using Borland Turbo C for either MS-DOS or OS/2. The CUG Library distribution includes MS-DOS executable and full source on a single diskette. SNews version 1.91 (released 08/25/93) is immediately available as CUG volume #408. 1/2
<DT><A HREF=408_02/00_index.unx>408_02/</A>
<DD>SNEWS: threaded Usenet newsreader for PCs 2/2
<DT><A HREF=409_01/00_index.unx>409_01/</A>
<DD>Kendall Bennett of SciTech Software (Melbourne, Australia) submits his SuperVGA VESA VBE test kit and Universal VESA VBE. The SuperVGA VBE VESA test kit thoroughly tests and demonstrates the VBE BIOS calls. The Universal VESA VBE is a drop-in replacement for an existing VBE driver you might or might not already have. As you may recall, the Video Electronics Standards Association (VESA) has established criteria allowing interoperability of SuperVGA hardware and software. The VESA BIOS Extensions (VBE) provide the ability to address video modes beyond regular VGA (640x480x16) in a hardware-independent fashion. Although the test kit includes full source code, the shareware VBE replacement driver offers source code for an additional licensing fee from SciTech Software. Both are immediately available on a single diskette as CUG volume #409.
<DT><A HREF=410_01/00_index.unx>410_01/</A>
<DD>Gary A. Allen, Jr., (Prentice Center, Queensland, Australia) submits his PART utility for examining the partition table and hard disk parameters under MS-DOS. PART works with all MS-DOS compatible hard disks and provides additional low-level information on Integrated Drive Electronics (IDE) disk controllers. Allen notes that although there are powerful partition editors available, all of them run the risk of accidently changing these critical disk parameters. Since PART is a read-only display, the partition tables remain secure at all times. PART includes full source in C and claims compatability with the Borland C/C++ compiler. PART version 1.5, as released on 10/27/93, now appears on CUG #410.
<DT><A HREF=411_01/00_index.unx>411_01/</A>
<DD>Bram Moolenaar (Venlo, Netherlands) contributes his Vi Improved editor (Vim) that supports MS-DOS, Amiga, and most forms of Unix. Vim claims near 100% of the functionality of the classic "vi" Unix editor. Vim also includes many embellishments on the original ideas and thus adds unique functionality of its own. The CUG Library edition includes full source in C as well as pre-built executables for MS-DOS. Vim version 2.0, as released 12/14/93, is now available as CUG #411. 1/2
<DT><A HREF=411_02/00_index.unx>411_02/</A>
<DD>Vi Improved (VIM) Editor 2/2
<DT><A HREF=412_01/00_index.unx>412_01/</A>
<DD>Peter M. Bouthoorn (Groningen University, Netherlands) submits his C++ search class library with artificial intelligence capabilities. AISEARCH is a tool for developing problem solving software. Basically, the library offers the programmer a set of search algorithms that solve all kind of different problems. When developing problem solving software, the programmer should concentrate on the representation of the problem to be solved and should not the implementation of the search algorithm used. This AISEARCH implementation of a set of search classes may be incorporated in other software through C++ derivation and inheritance. AISEARCH can be built in MS-DOS with Borland C++ or MS C++ and on Unix using GNU C++. AISEARCH, as released on 02/10/94, is immediately available as CUG #412.
<DT><A HREF=413_01/00_index.unx>413_01/</A>
<DD>CUG proudly announces two freeware programming kits for the Sound Blaster digital audio cards on a single diskette volume. The original Sound Blaster card by Creative Labs, Inc. has become the industry standard for PC digital audio. Today, a plethora of Sound Blaster (SB) compatible cards are available from many vendors. Although SB cards have proliferated widely, the knowledge required to program and control their operation has not. The I/O and DMA access protocol is critical for developers creating MS-DOS based applications with SB audio.
<DT><A HREF=414_01/00_index.unx>414_01/</A>
<DD>Mark Hessling (Holland Park, Queensland, Australia) offers his own full screen text editor similar to IBM VM/CMS Xedit and Mansfield Software's KEDIT. The THE text editor uses both command line commands and key bindings to operate. It has currently been ported to SUNOS 4.1.x, Xenix-386, MS-DOS (Borland C++ and MSC), Esix 4.0.3a, ATT SystemV 3.2, Linux, 386BSD, and OS/2 2.1 (MSC, C Set/2, Borland C++). The CUG distribution of THE includes full source in C and a prebuilt executable for use with MS-DOS. THE version 1.5, as released on 01/12/93, is now available as CUG #414. 1/3
<DT><A HREF=414_02/00_index.unx>414_02/</A>
<DD>THE: Highly Portable Text Editor 2/3
<DT><A HREF=414_03/00_index.unx>414_03/</A>
<DD>THE: Highly Portable Text Editor 3/3
<DT><A HREF=415_01/00_index.unx>415_01/</A>
<DD>Arindam Banerji (Dept. of Computer Sci. & Eng, University of Notre Dame) contributes his Run Time Type Information library for C++. Run Time Type Information (RTTI) is a C++ language extension proposed by the ANSI C++ committee. Although the extension is intended to implemented as part of native C++ compilers, it may be a long time before this comes to fruition. Fortunately, Banerji's implementation of RTTI as a C++ library means that you can start taking advantage of it right away. His system is loosely based on the RTTI system demonstrated by Stousroup in "The C++ Programming Language". RTTI for C++ works *ONLY* with Unix based C++ implementations due to file naming conventions that are *INCOMPATIBLE* with MS-DOS. RTTI for C++, as released on 11/03/93, is now available is CUG #414. 1/2
<DT><A HREF=415_02/00_index.unx>415_02/</A>
<DD>Run Time Type Information Library for C++ 2/2
<DT><A HREF=416_01/00_index.unx>416_01/</A>
<DD>Nigel Salt (Crayford, Kent, U.K.) contributes a variety of standalone tools and libraries with source code in C for MS-DOS. This is the first time source code for many of these tools has been released. Some of the programs are written specifically for Borland Turbo C while others are intended for use with Microsoft C (MSC). All programs are shareware with reasonable registration fees ($15 or less) or donationware (whatever you feel is appropriate).
<DT><A HREF=417_01/00_index.unx>417_01/</A>
<DD>Oleg Orel (Institute for High Energy Physics, Protvino, Russia) presents his LIBFTP TCP/IP library. LIBFTP provides an easy callable interface for Unix programs to talk with FTP servers as defined in RFC 959. The FTP (or File Transfer Protocol) is the protocol of choice for transferring files over the Internet. As such, you could use this library to write your own FTP client with a graphical user-interface or perhaps as the basis of a file-mirroring utility. LIBFTP works with most popular Unix systems but cannot work with MS-DOS. LIBFTP (as released on 10/28/93) is immediately available as CUG #417. 1/2
<DT><A HREF=417_02/00_index.unx>417_02/</A>
<DD>LIBFTP: easy interface to servers 2/2
<DT><A HREF=418_01/00_index.unx>418_01/</A>
<DD>Roger Sayle (Dept. Computer Science, University of Edinburgh, U.K.) contributes his molecular graphics visualization system for Unix XWindows and MS Windows. Specifically, RasMol is intended for the visualisation of proteins and nucleic acids. It reads Brookhaven Protein Databank (PDB) files and interactively renders them in a variety of formats on either an 8-bit (see Fig. 2) or 24- to 32-bit colour display. Documentation includes include on-line help, hypertext documentation and the previous (dated) version of the PostScript user reference manual. RasMol version 2.3 (as released on 03/04/94) is immediately available on a 4 disk set as CUG #418. 1/5
<DT><A HREF=418_02/00_index.unx>418_02/</A>
<DD>RasMol: Molecular Graphics Visualization 2/5
<DT><A HREF=418_03/00_index.unx>418_03/</A>
<DD>RasMol: Molecular Graphics Visualization 3/5
<DT><A HREF=418_04/00_index.unx>418_04/</A>
<DD>RasMol: Molecular Graphics Visualization 4/5
<DT><A HREF=418_05/00_index.unx>418_05/</A>
<DD>RasMol: Molecular Graphics Visualization 5/5
<DT><A HREF=419_01/00_index.unx>419_01/</A>
<DD>Dale Anderson (San Diego, CA) submits his a first release of the collections specified by Object Database Management Group - 93 (ODMG-93). This work is based on the publication "The Object Database Standard: ODMG-93" (ISBN 1-55860-302-6). Although Anderson has no personal affiliation with the ODMG, this work nevertheless represents an important contribution to the dissemination of this conceptual model. His release contains collection classes (see chapter 5), man pages for each method, and a test suite for almost all methods. The code itself has been tested on an HP/UX 9.0 C++ compiler and GNU C++ also on this platform. Anderson's ODMG-93 implementation for Unix (as released on 03/02/94) is immediately available as CUG volume #419.
<DT><A HREF=420_01/00_index.unx>420_01/</A>
<DD>James L. Dean (New Orleans, LA) contributes his VGAMAZE tools written for MS-DOS VGA graphics with the Borland C++ 3.0 compiler. VGAMAZE displays mazes with square (SQRMAZE.CPP) or hexagonal rooms (HEXMAZE.CPP) in three dimensions on your monitor. It includes a template for one dimensional virtual arrays. The plotting class can plot any surface z=f(x,y). An example program for surfaces (SPIKE.CPP) demonstrates that its good for more than just mazes. The CUG Library distribution includes all C++ source code and executables for SQRMAZE, HEXMAZE, and SPIKE. VGAMAZE version 4 (as released on 02/27/94) is immediately available as CUG Library volume #420A.
<DT><A HREF=420_02/00_index.unx>420_02/</A>
<DD>Tatsurou Sekiguchi (Department of Information Science, University of Tokyo, Japan) submits his Coerce program which can convert many graphic file formats popular on BBSes in Japan. Specifically, it converts from one of MAG, PI, PIC, MAKI, PPM, PBM, ML1, and beta formats to one of MAG, PI, PIC, PPM, and beta formats. Coerce can be compiled on any Sun workstation running SunOs 4.1.3 with GNU C++ 2.4.5 or later. Others have reported good success compiling Coerce on MIPS and RS/6000 machines. Sekiguchi also includes source for a simple X Windows bitmap viewer. Coerce (as released on 02/24/94) is immediately as CUG Library volume #420B.
<DT><A HREF=421_01/00_index.unx>421_01/</A>
<DD>Thomas Hagen (Trondheim, Norway) contributes his RFVDEMO collection of high-speed VGA animation demonstrations for MS-DOS. The animations require the Borland C++ 3.1 compiler. There are four main animation demonstrations included: bitmap-rotation routine, fractal zoomer, plasma, and voxelspace routine. These are in addition to lower-level support routines for keyboard handling, timer class, and others. RFVDEMO version 0.1 (as released on 01/17/94) is immediately available in a three disk set as CUG volume #421. 1/3
<DT><A HREF=421_02/00_index.unx>421_02/</A>
<DD>RFVVGA Graphics Animation Demo 2/3
<DT><A HREF=421_03/00_index.unx>421_03/</A>
<DD>RFVVGA Graphics Animation Demo 3/3
<DT><A HREF=422_01/00_index.unx>422_01/</A>
<DD>Dave Dunfield (Nepean, Ontario, Canada) submits an entire suite of tools from the MICRO-C C compiler development system. This includes the MICRO-C C compiler itself for MS-DOS, more than 70 useful sample programs with full C source, and a demonstration version of MICRO-C for embedded systems. MICRO-C is a tiny compiler which can run with less than 32k RAM and yet is highly independent of CPU and OS. Specifically, platform support is available separately for 68HC08, 6809, 68HC11, 68HC16, 8051/52, 8080/8085, 80x86 and 8096 CPUs. The CUG Library distribution includes a fully functional MICRO-C compiler executable built for the MS-DOS 80x86 environment. This version generates code in .ASM format so Microsoft MASM, Borland TASM, or equivalent are required (not included). MICRO-C version 3.02 (as released on 03/22/94) is immediately available as CUG #422 in a set of four diskettes. 1/4
<DT><A HREF=422_02/00_index.unx>422_02/</A>
<DD>Micro-C C Compiler 2/4
<DT><A HREF=422_03/00_index.unx>422_03/</A>
<DD>Micro-C C Compiler 3/4
<DT><A HREF=422_04/00_index.unx>422_04/</A>
<DD>Micro-C C Compiler 4/4
<DT><A HREF=423_01/00_index.unx>423_01/</A>
<DD>The CUG Library has always accommodated C/C++ archives both big and small. This month, I've compiled an anthology of five outstanding but small source archives. William Pierpoint (Camarillo, CA) submits his comprehensive library for stream-style record I/O. Karl Hahn (Sarasota, FL) contributes a MIME binary encode/decode routines for use with email tools. Philip Erdelsky (San Diego, CA) releases both source for general ledger posting with 32-bit math library and a Re-entrant DOS-Compatible File System for embedded systems. Last, Keith Vertanen (Pine Springs, MN) sends his brief but succinct implementation of the BSPLINE rendering algorithm. Again, all five archives are immediately available on a single diskette as CUG volume #423.
<DT><A HREF=424_01/00_index.unx>424_01/</A>
<DD>Charles Sandmann (Houston, TX) submits the ED editor with a user interface based on the DEC VMS EDT editor. ED is a true multiplatform editor and can be compiled and run on virtually any platform. It includes target-specific code for keyboard, screen, and TCP/IP handling. This allows it to run on Unix (IBM RS/6000, Sun Sparc, HP, NeXT or Alpha AXP machines), MS-DOS, Windows NT, and OS/2 environments with ease. ED can edit any kind of file in text, binary, or hexadecimal modes. 1/2
<DD>Timor V. Shaporev (Moscow, Russia) contributes an extremely versatile version of the classic Unix TAR archiver and an innovative method of delivering LZW compressed data over pipes. Portable TAR works with both MS-DOS and Unix compatible machines. Since more than half the source code available from the Internet appears in TAR format, you'll quickly find this a valuable utility. Portable TAR reads and writes archives in ordinary files, raw floppies, and QIC-02 streamer tapes. It understands regular TAR formats, PKZIP, gzip, and Unix "compress".
<DT><A HREF=426_01/00_index.unx>426_01/</A>
<DD>Patrick Ko Shu Pui (Hong Kong) submits his LPC-Parcor-Cepstrum code generator for C. The LPC-Parcor-Cepstrum code generator (hereafter, LPC) can be built on most Unix platforms as well as Microsoft C/C++ 7.0 and Borland Turbo C v2.0. The primary use of this archive is the manipulation and normalization of audio data files. Specifically, it supports 8-bit ulaw (SUN Sparc), 8-bit and 16-bit PCM data. It then generates LPC autocorrelation or covariance coefficients, Parcor (partial correlation) coeefficients, or LPC cepstrum coefficients.
<DT><A HREF=427_01/00_index.unx>427_01/</A>
<DD>Christof Ruch (Clausthal, Germany) submits the Multi Joystick Interface package. This package makes it possible to connect up to six digital joysticks (Atari type) to the parallel port of your PC. For test (or two player gaming) purposes, two joysticks can be emulated by the keyboard, so you can try out the games before you actually decide to build an interface. Specifically, this archive includes instructions for building the interface, test programs for checking your interface, and Pascal and C interface routines. Several arcade type games have are already publicly available for this system, though none are included with the CUG archive.
<DT><A HREF=428_01/00_index.unx>428_01/</A>
<DD>Jonathan Wood (Irvine, CA) contributes the PICTOR text-mode video library. PICTOR is a C callable library for MS-DOS development that provides multi-pane stacked windows, pulldown menus, and hypertext help. PICTOR is more than just video: it also includes interrupt-driven serial communications, CTRL-C and critical error handler, on-screen clock, text compression, and even a sample text editor. 1/2
<DT><A HREF=428_02/00_index.unx>428_02/</A>
<DD>Pictor Text-Mode Video Library for C/MS-DOS 2/2
<DT><A HREF=429_01/00_index.unx>429_01/</A>
<DD>This volume combines three relatively small but powerful archives on a single diskette. Walter Karas (Cary, NC) submits C++ source code for a simple MS-DOS chess game. Astute CUJ readers will remember that Walter Karas also contributed the SORTLIST AVL algorithms last year on CUG #395. Russell Taylor (University of North Carlina at Chapel Hill) contributes archives for redirecting serial I/O and accelerating the PC hardware clock.
<DT><A HREF=430_01/00_index.unx>430_01/</A>
<DD>Christopher G. Phillips (University of Texas at Austin) submits his "m68kdis" disassembler for the Motorola 68000 family of CPU chips. Disassemblers are system software that accepts a binary executable as input and produces assembly language source as output. Specifically, m68kdis supports the full instruction sets of the 68000, 68008, 68010, 68020, and 68030 CPU chips. Additionally, m68kdis decodes instructions for the 68851 Paged Memory Unit and the 68881/68882 Floating-Point Coprocessors. The Motorola 68000 family chips power millions of computers including the Macintosh, Atari, Amiga, and many embedded CPU industrial applications. The CUG Library edition of m68kdis includes full source in C (no executables are provided). The m68kdis disassembler is immediately available as CUG volume #441.
<DT><A HREF=431_01/00_index.unx>431_01/</A>
<DD>Kyle A. York (McGraw Hill School Systems) submits his Remote Installable File System for DOS. The Remote Installable File System provides a LAN linking two computers through the serial port so they may share resources. RIFS installs itself as a TSR using the MSCDEX convention for installable file systems. Shareable resources are currently limited to available disk drives including hard disks, CD-ROM, and network drives. RIFS also supports the redirection of a client parallel port to a file or device on the server. RIFS supplies 32-bit Cyclic Redundancy Check (CRC) to guarantee error-free file transfers. The CUG Library distribution includes full source in C and ASM as well as MS-DOS executables. RIFS for DOS (released 10/08/94) is immediately available as CUG volume #431.
<DT><A HREF=432_01/00_index.unx>432_01/</A>
<DD>Andrew Scott (Mosman Park, Australia) submits his PTMID music conversion utility. Specifically, PTMID takes General MIDI files (format 0 or 1) and converts them to Protracker MOD files or Multitracker MTM files. As you may know, MIDI files are industry standard, but need some sort of sequencer to be played. This is because there can be near-infinite simultaneous notes present (though about 20 is a standard maximum). Protracker files are 4 channel (though 6, 8, or more can be supported) files, but have a bank of digitized instruments included. This allows reasonable quality sound to be produced given limited hardware. Multitracker files are similar to MOD files and support up to 32 simultaneous notes. PTMID version 0.3 (released on 07/18/94) is immediately available on CUG Library volume #432A.
<DT><A HREF=433_01/00_index.unx>433_01/</A>
<DD>Stephen L. Balkum and Daniel A. Sill (Zephyr Software, Austin, TX) submit their MS-DOS real-mode SVGA graphics library for MSC, Borland C, and Symantec C/C++. SVGACC provides an easy interface to the high resolution/high color video modes of the newer SVGA video cards. There has been no standard for VGA video cards above the 320x200x256 resolution. Instead, each video card manufacturer has implemented a slightly different method to access these high resolution/high color video modes. SVGACC automatically identifies the video card and its installed memory. Users may write graphics programs that will work on most any SVGA card without writing specific versions for each individual SVGA card. Over 100 functions support sprite animation, drawing primitives, fills, 3-D views and much more. SVGACC is written in 100% assembly language and uses 80386 32-bit registers for the best possible speed. SVGACC version 2.1 (as released on 05/09/94) is immediately available as CUG volume #433.
<DT><A HREF=434_01/00_index.unx>434_01/</A>
<DD>Nicholas Centanni (Los Gatos, CA) submits his 3-D graphics class library for Borland C++ 3.1 (and later). XYZ++ is a comprehensive package of optimized C++ classes for both floating point and fixed point 3D graphics. 1/2
<DT><A HREF=434_02/00_index.unx>434_02/</A>
<DD>XYZ++: 3-D C++ Graphics Lib 2/2
<DT><A HREF=435_01/00_index.unx>435_01/</A>
<DD>Jason Hughes (Abilene, TX) submits his VESA SVGA graphics demonstration that includes many other programming elements essential to writing MS-DOS games. The graphics demonstrations take you through many fast-moving animations that show off the VESA 640x480x256 color display mode. I was particularly impressed with its speed even on my slow 80386DX-20Mhz CPU. Additional graphics routines show off the virtual paging capabilities of SVGAs with more than 1MB RAM onboard. The CUG Library distribution of VesaTest includes full source code in Borland C++ v3.1 along with MS-DOS executables. VesaTest version 2 (as released on 07/20/94) is immediately available as CUG #438.
<DT><A HREF=436_01/00_index.unx>436_01/</A>
<DD>Richard Zigler (McBain, MI) submits his INput CONtrol (INCON) library for developing sophisticated data input screens in MS-DOS applications. INCON gives you control over the placement and appearance of input fields, and the type and amount of data that each will accept. Input fields may be alphanumeric, uppercase, integer, or floating-point. The INCON library support Borland Turbo C 2.01 (or later) and will build Compact, Small, Medium, or Large memory model versions. INCON version 3.1 (as released on 10/08/94) is immediately available as CUG #436
<DT><A HREF=437_01/00_index.unx>437_01/</A>
<DD>C/C++ Exploration Tools for Windows, by Juergen Mueller (Kornwestheim, Germany), includes both his C Function Tree Generator (CFT) and the C Structure Tree Generator (CST). CFT and CST analyse the C/C++ source code of applications of any size with multiple files. CFT and CST are useful to explore new, unknown software and to support re-use, maintenance and re-engineering. By preprocessing, scanning, and analysing the program source code, these programs generate the function call hierarchy (CFT) and the data structure/class (CST) relations. Both programs can handle C and C++ code, CFT can additionally analyse assembler code. The C Exploration Tools for Windows executables (released 09/11/94) are immediately available as CUG volume #437. 1/2
<DT><A HREF=437_02/00_index.unx>437_02/</A>
<DD>C/C++ Exploration Tools for Windows 2/2
<DT><A HREF=438_01/00_index.unx>438_01/</A>
<DD>Riku Saikkonen (Finland) submits his telnet client for MS-DOS which uses the serial port as the I/O device. Although designed for Bulletin Board System (BBS) applications, STELNET works equally well without any BBS software. STELNET requires a FOSSIL driver and the Waterloo TCP library. It supports binary mode telnet (8-bit), and a '8-bit clean mode', in which all 256 characters are cleanly transferred in both directions. STELNET does not do any terminal emulation of its own; it should never change the data transferred (except where protocol requirements designate).
<DT><A HREF=439_01/00_index.unx>439_01/</A>
<DD>David Pyles (Jackson, MS) offers his DOS Extender Library for producing Protected Mode MS-DOS applications. XLIB is an assembly language library which greatly simplifies protected-mode programming under Microsoft DOS. With only two calls to XLIB, assembly language programs can utilize the simplicity and power of 32-bit processing. C and C++ programs can harness the powers of 16-bit protected mode using inline assembly. Additionally, the XLIB archive contains a second library call EASYX which allows all high-level languages to gain access to extended memory.
<DT><A HREF=440_01/00_index.unx>440_01/</A>
<DD>George Vanous (Delta, BC) submits his library of essential and efficient C-callable functions. Although oriented towards MS-DOS, many of the algorithms are relevant on other platforms such as Windows and Unix. BESTLibrary consists of 282 functions coded in assembler and 68 functions written in C. All calls require far pointers (e.g. Large memory model).
<DT><A HREF=441_01/00_index.unx>441_01/</A>
<DD>George Vanous' also submits his VGA Editor for editing and animating graphics images with full mouse support. The VGA Editor creates graphics files that are fully portable into C and Pascal programs in conjunction with BESTLibrary (CUG #440). The editor is ideal for drawing small pictures and animations for use with 16-color VGA modes. VGA Editor will also read in Windows .ICO files for editing (but does not yet support writing them). The editor can accomodate multiple-frame animations in a single editing session. Fig. 1 shows the zoom style of editing on a single frame.
<DT><A HREF=442_01/00_index.unx>442_01/</A>
<DD>Ted Jensen (Redwood City, CA) has contributed his manuscript "A Tutorial on Pointers and Arrays in C" to help novice C programmers learn proper usage of these critical language elements. Looking back to my own apprenticeship in C more than 10 years ago, I still have vivid memories of my trials with pointers. Jensen's work is based on a tutorial originally found in Bob Stout's popular "SNIPPETS" C code collection.
<DT><A HREF=443_01/00_index.unx>443_01/</A>
<DD>Martin Steppler (Aachen University of Technology, Germany) submits the Communication Networks Class Library (CNCL), a C++ library created by the Communication Networks department of Aachen. CNCL is both a class library featuring generic C++ classes as well as a simulation library with strong points in random number generation, statistics, and event-driven simulation.
<DT><A HREF=444_01/00_index.unx>444_01/</A>
<DD>Mendel Cooper (Grantsville, MD) contributes a volume of MS-DOS games: Wordy, ChessClock, and Chaos Game. Wordy is an educational word-game study system that builds pattern and word recognition skills used in Scrabble (tm) and Boggle (tm). The Wordy practice game checks words you unscramble against a 100,000 word dictionary. Wordy also includes standalone Search, Anagram, UnScramble, and word-pattern find utilities. A BINGO utility looks up all valid permutations of letters of a word. The 1DIF utility finds all legal words constructed by substituting a single letter.
<DT><A HREF=445_01/00_index.unx>445_01/</A>
<DD>Mendel's second volume includes an eclectic mixture of ten different text and graphics utility and algorithm demonstrations.
<DT><A HREF=446_01/00_index.unx>446_01/</A>
<DD>The Are Magnus Bruasat of the SINTEF group at the University of Oslo (Norway) submits Diffpack: a fully object-oriented framework in C++ for solution of Partial Differential Equations (PDEs). PDEs often arise in the mathematical modeling of physical processes involving for example fluid mechanics or waves. Some typical uses of Diffpack include standard model PDEs, 3D linear wave equation, incompressible Navier-Stokes, and stochastic ODEs. Diffpack can interface with gnuPlot and plotmtv. You can even construct MPEG movies from multiple visualization frames.
<DT><A HREF=447_01/00_index.unx>447_01/</A>
<DD>Michael F. Watson and Dean Lance Smith contribute RELAY: an interactive overload protection design tool for electrical engineers. Relay plots the time-current characteristics of overcurrent protection devices and coordinates the overcurrent protection devices at an electric distribution substation. The source code is entirely in C and includes makefiles for the Microsoft C compiler.. The RELAY.EXE executable requires MS-DOS and VGA display.
<DT><A HREF=448_01/00_index.unx>448_01/</A>
<DD>Surojit Chatterjee and Dean Lance Smith submit a tool for detecting digital circuit problems via signature analysis. Signature analysis is a technique used in servicing microprocessor-based systems. With this technique, an instrument called a signature analyzer is used to check a digital circuit by detecting the bit streams at various nodes of the circuit. The bit streams are displayed as hexadecimal signatures. The actual signature of a node is compared with its predetermined correct signature. The result of the comparison is used to trace faults in the system down to the component level. This distribution includes complete source in C and MS-DOS executables. The source supports Borland Turbo C but could possibly be ported to other environments. Signature analysis v1.0 is now available on CUG CD-ROM as volume #448
<DT><A HREF=449_01/00_index.unx>449_01/</A>
<DD>Nullsock, by Jean-Michel Mercier (Paris, France), is a Winsock simulator which allows you to run Winsock applications offline. This is most useful for forcing a web browser to work on offline copies of HTML files that you have downloaded. You might want to do this because you're "on the road" with a portable computer but without a immediate Internet connection or perhaps to avoid paying online charges to view material you've already downloaded several times. Nullsock works by loading a dummy WINSOCK.DLL with its entry points replaced by stubs. You can either run Nullsock directly or use Nullsock to spawn the desired application. Nullsock was designed to work with Windows 3.11 and has been tested with Netscape and AIR Mosaic. It will work with Windows 95, but only when running 16-bit Winsock applications. Nullsock includes complete C source and compiles with Borland C. Nullsock version 1.0 is available on CUG CD-ROM as volume #449.
<DT><A HREF=450_01/00_index.unx>450_01/</A>
<DD>Klamer Schutte of the TNO Physics and Electronics Laboratory (The Hague, Netherlands) contributes the CpppIma image processing class library. CppIma library provides an interface to common operations on images for C++ applications. The operations include file I/O, image creation, iterators for traversing images, and histogram creation. The library's is enabling easy construction of image processing programs. Secondarily, Schutte hopes to achieve reasonable performance and create an image library independent API.
<DT><A HREF=451_01/00_index.unx>451_01/</A>
<DD>Schutte has also contributed ClipPoly, an extended C++ polygon clipping library with set operators. Classical clipping algorithms will tell you whether a point "x" is withing a given polygon "A". ClipPoly handles the more general case of two polygons "A" and "B" where you want to know the areas of intersection of "A" and "B", "A" minus B", and "B" minus "A". Although the Weiler-Atherton algorithm already solves this case, Schutte presents a simpler but just as effective algorithm. The ClipPoly algorithm requires only that all polygons are non-self-intersecting (i.e. there are no "holes").
<DT><A HREF=452_01/00_index.unx>452_01/</A>
<DD>Sean Gordon (Fife, Scotland) submits Freedock, a Windows "dock" program that includes the full source code in C. A dock is kind of a miniature version of Program Manager that holds icons for the small number of applications that you use most often. Freedock also remembers your preferred window geometry for each application that you register with it. This saves you from the burden of re-arranging your windows each time you startup an application. A "previewer" allows you to check or change the window geometry without actually launching the applications. The entire dock can be scaled in a way similar to the MS Office Manager dock.
<DT><A HREF=453_01/00_index.unx>453_01/</A>
<DD>Jean-Claude Wippler (Houten, Netherlands) contributes his MetaKit, a compact class library for data storage and easy manipulation of structured objects and collections in C++. MetaKit works with any C++ compiler that supports Microsoft Foundation Classes including VC++, Borland C++, and Symantec C++. MetaKit allows your data to be loaded on demand, which allows you access to any size files. It uses traditional database metaphors of begin work/commit work/ rollback work with automatic file storage allocation and reclamation. MetaKit allows data to be "flattened" for efficient streaming over sockets and pipes. It encapsulates data in terms of view, row, and property classes. Data can be conveniently accessed via "[]" and "()" by operator overloading. Applications can statically link MetaKit or load it as a DLL.
<DT><A HREF=454_01/00_index.unx>454_01/</A>
<DD>Beat Rigazzi (Oberonz, Switzerland) submits the Sound Wizards Module Player (SWMP), a driver for playing .MOD sound files through any digital audio card (SoundBlaster compatible). The .MOD audio file format The .MOD file is a multichannel sampled audio file which supports 4, 6, or 8 simultaneous channels. The .MOD file has fewer limitations than the .WAV file and for that reason has become widely used by electronic music and game producers. SWMP includes several example .MOD tracks for you to experiment with and a standalone MS-DOS player program (SWMP.EXE). SWMP provides an API and calling interfaces for Borland C/C++, Assembler, and Pascal. You can integrate the library simply by including the header file and linking in MOD_DRV.OBJ (source not provided).
<DT><A HREF=455_01/00_index.unx>455_01/</A>
<DD>Oleg Kiselyov (Denton, TX) offers his Advanced I/O C++ Class Library which enhances the capabilities of stream I/O with encoding and compression. Some of these features include: * Filenames with pipes embedded * Explicit Endian I/O of short/long integers (guarantees portability) * Stream sharing of different I/O types * Simple variable-length coding of short integers * Arithmetic compression of a stream of integers
<DT><A HREF=456_01/00_index.unx>456_01/</A>
<DD>Kerwin F. Medina (New Westminster, BC) contributes LZHLIB, a small C library with the minimum code neccessary to compress and uncompress using the LZH algorithm. This library is a direct derivative of the source cod of Haruhiko Okumura's popular "ar" archiver. Medina has created the library so an application can make use of compression with a function call and without having to spawn an external compression program. The library has only two API functions: "lzh_freeze" (to compress) and "lzh_melt" (to decompress). In both cases, the caller only has to provide the I/O functions and memory allocation functions. The interface is simple enough that you can integrate it with fewer than 20 additional lines of code in your program. LZHLIB can be built on MS-DOS, Unix, and other platforms. LZHLIB as released on 04/18/96 is now available on the CUG CD-ROM.
<DT><A HREF=457_01/00_index.unx>457_01/</A>
<DD>Gray Watson (Pittsburgh, PA) submits dmalloc, the debug memory allocation library. The dmalloc library has been designed as a drop-in replacement for C runtime malloc(), realloc(), calloc(), free() and other memory management routines. It provides many debugging facilities that you can configure at runtime, including: memory-leak tracking, fence-post write detection, file/line number reporting, and general logging of statistics.
<DT><A HREF=458_01/00_index.unx>458_01/</A>
<DD>Kiselyov Oleg (Denton, TX) contributes Grayimage, a C++ class library for dealing with full-depth grayscale images. Grayimage upports all standard image algebra/arithmetics including dealing with image slices, histogram equalization, and computing various norms and scalar products. The package reads and writes PGM, XWD and Group G (grayscale) TIFF file formats with automatic recognition of the input image file format. It's possible to assign one image to another to fit, no matter what their dimensions are.
<DT><A HREF=459_01/00_index.unx>459_01/</A>
<DD>Alex Hunger (Adlington, Lancashire UK) submits MMND, a game that puts the computer in the role of "codebreaker" in the classic MasterMind (TM) boardgame. The interesting aspect of Hunger's implementation is that the computer can guess a pattern that you choose. It uses an optimal information-theoretic algorithm and so plays extraordinarily well -- better than any human being. This takes a lot of computation, so patterns chosen are stored in a data file so a computation never needs to be made twice. The patterns chosen are put through a randomizing algorithm that makes the game more interesting to play, without losing optimality.
<DT><A HREF=460_01/00_index.unx>460_01/</A>
<DD>M.A. Sridhar of faculty of the University of South Carolina (Columbia, SC) contributes "Yet Another Class Library (YACL), an innovative cross-platform application framework. YACL is a C++ class library that offers high-level abstractions for common programming problems. Its design goal is to be both application-centric and take advantage of C++ facilities (e.g. operator overloading and templates) wherever possible. YACL implements both scalar (String, Integer, Date, etc.) and container (sequence, set, tree, etc.) core classes. The GUI classes are based on a variation of the model view controller (MVC) paradigm. YACL supports all expected GUI objects (menus, dialogs, buttons, listboxes, button groups, etc) and resources (cursors, fonts, pens, colors and brushes).
<DT><A HREF=461_01/00_index.unx>461_01/</A>
<DD>Dean Lance Smith and Mohammad Musa present their paper "Two Software Data Organizations that Support Railroad Signalling" and accompanying C source. This program models a control system capable of understanding an entire railroad line composed of any combination of Automatic Blocking System (ABS) and Centralized Traffic Control (CTC) blocks. In railroad parlance, a "signal block" or "block", is a length of rail track that is controlled by a block signal. A block may contain two or more tracks in various track configurations. Most blocks have at least one main track. Two or more main tracks may also be in parallel in a block. A block may also contain lines that cross the main track(s), turnouts, branch lines, or sidings. Two or more blocks constitute a rail line.
<DT><A HREF=462_01/00_index.unx>462_01/</A>
<DD>Ed Ream (Madison, WI) submits the Sherlock 2.0 set of debugging tools for Macintosh as CUG volume 462. Longtime CUJ readers may recall earlier incarnations as Sherlock 1.7 for MS-DOS (CUG 355) and Macintosh (CUG 356). Sherlock is a debugging tool different from currently popular interactive debugging tools such as CodeView. Sherlock uses C macro expansion capabilities to implant debugging calls and functions without manual coding. Those calls are enabled/disabled from the command line and removing those calls from the source is also done automatically. Sherlock uses far less memory than a full-size debugger. In addition, Sherlock provides detailed statistics about your program.
<DT><A HREF=463_01/00_index.unx>463_01/</A>
<DD>Leonard Janke (University of British Columbia, Vancouver) contributes LInteger, a C++ library that empowers you to create and perform arithmetic on objects representing nearly arbitrary precision integers. Thanks to C++ support for operator overloading, the use of the large integers in this library should be nearly as easy as the use of regular int types. In many cases, converting your application to use LInteger can be as simple as substituting "LInteger" for "int" in your editor.
<DT><A HREF=464_01/00_index.unx>464_01/</A>
<DD>B.T. Szocik (Ottawa, Ontario) submits the Miracle C compiler, a complete language and runtime implementation for MS-DOS. Szocik intends Miracle C to be used primarily as a teaching support tool. Miracle C supports only the Small memory model (code < 64K, data < 64K). Pointers are always 16-bit; no "far" extensions are allowed. All K&R C syntax and data types are fully supported (plus some ANSI extensions), there's nothing small about the language implementation.
<DT><A HREF=465_01/00_index.unx>465_01/</A>
<DD>Victor R. Volkman (Ann Arbor, MI) contributes his "Fader" custom control for Windows, a slider control for use with Windows 3.1 and compatible environments. The Fader is a custom control designed to return a continuous range of values based on the position of a thumb that slides along a rail. This idea is similar to the Windows scrollbar in many respects. Since the scrollbar is almost inseparably associated with scrolling the client area, it quickly becomes unfamiliar in other contexts. The fader provides an analog range in the same way the potentiometers are used in a stereo equalizer or mixer. For example, a fader could be used to apply equalization to a waveform or to regulate the hue of a color.
<DT><A HREF=466_01/00_index.unx>466_01/</A>
<DD>Eric Artzt of Microsoft Corporation (Bellevue, WA) releases Autoduck, a Windows 95/Windows NT console utility that extracts specially tagged comment blocks from C/C++, Visual Basic, and Assembly source files. Autoduck formats the information in the comment blocks and produces documentation files in Rich Text Format (RTF) for use with Microsoft Word or the Windows Help Compiler. Autoduck can also produce HTML files for Internet or intranet use.